#ifndef _PROMOTION_H_
#define _PROMOTION_H_

#include "guisystem.h"
#include "gameinfo.h"

#include "igamestateview.h"
#include "igamestate.h"

class Promotion;

class PromotionView : public IGameStateView
{
public:
    PromotionView(Promotion& model, GuiSystem& gui);
    void draw(bool clear);
    void onEnter();
private:

    void setup2dView();

    Promotion& _model;
    GuiSystem& _gui;

    static const GuiId GUI_QUEEN = 2;
    static const GuiId GUI_ROOK = 3;
    static const GuiId GUI_BISHOP = 4;
    static const GuiId GUI_KNIGHT = 5;

};

class Promotion : public IGameState
{
public:
    Promotion(GameInfo& gameInfo);
    ~Promotion();

    bool update(float dt, const Input& input);
    IGameStateView& getView();
    void onEnter();

private:

    GameInfo& _gameInfo;
    GuiSystem& _gui;
    PromotionView& _view;

    static const GuiId GUI_QUEEN = 2;
    static const GuiId GUI_ROOK = 3;
    static const GuiId GUI_BISHOP = 4;
    static const GuiId GUI_KNIGHT = 5;

};

#endif // _PROMOTION_H_
